package fair.domain;

import javax.persistence.*;
import java.io.Serializable;

/**
 * @author fair_wu
 * @version v1.0
 * @date 2021-02-12 下午 20:38
 */

@Entity
@Table(name = "cst_customer")
public class Customer implements Serializable {

    /**
     * @Entity
     * 作用： 指定当前类是实体类。
     * @Table
     * 作用： 指定实体类和表之间的对应关系。
     * 属性：
     * name： 指定数据库表的名称
     * @Id
     * 作用： 指定当前字段是主键。
     * @GeneratedValue
     * 作用： 指定主键的生成方式。。
     * 属性：
     * strategy ： 指定主键生成策略。
     * IDENTITY:主键由数据库自动生成（主要是自动增长型） mysql
     * SEQUENCE： 根据底层数据库的序列来生成主键， 条件是数据库支持序列。 oracle
     * @Column
     * 作用： 指定实体类属性和数据库表之间的对应关系
     * 属性：
     * name： 指定数据库表的列名称。
     * unique： 是否唯一
     * nullable： 是否可以为空
     * inserttable： 是否可以插入
     * updateable： 是否可以更新
     * columnDefinition: 定义建表时创建此列的 DDL
     * secondaryTable: 从表名。 如果此列不建在主表上（默认建在主表）， 该属性
     * 定义该列所在从表的名字搭建开发环境[重点]
     */

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "cust_id")
    private Long custId;

    @Column(name = "cust_name")
    private String custName;

    @Column(name = "cust_source")
    private String custSource;

    @Column(name = "cust_industry")
    private String custIndustry;

    @Column(name = "cust_level")
    private String custLevel;

    @Column(name = "cust_address")
    private String custAddress;

    @Column(name = "cust_phone")
    private String custPhone;

    public Long getCustId() {
        return custId;
    }

    public void setCustId(Long custId) {
        this.custId = custId;
    }

    public String getCustName() {
        return custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    public String getCustSource() {
        return custSource;
    }

    public void setCustSource(String custSource) {
        this.custSource = custSource;
    }

    public String getCustIndustry() {
        return custIndustry;
    }

    public void setCustIndustry(String custIndustry) {
        this.custIndustry = custIndustry;
    }

    public String getCustLevel() {
        return custLevel;
    }

    public void setCustLevel(String custLevel) {
        this.custLevel = custLevel;
    }

    public String getCustAddress() {
        return custAddress;
    }

    public void setCustAddress(String custAddress) {
        this.custAddress = custAddress;
    }

    public String getCustPhone() {
        return custPhone;
    }

    public void setCustPhone(String custPhone) {
        this.custPhone = custPhone;
    }

    @Override
    public String toString() {
        return "Customer{" +
                "custId=" + custId +
                ", custName='" + custName + '\'' +
                ", custSource='" + custSource + '\'' +
                ", custIndustry='" + custIndustry + '\'' +
                ", custLevel='" + custLevel + '\'' +
                ", custAddress='" + custAddress + '\'' +
                ", custPhone='" + custPhone + '\'' +
                '}';
    }
}
